2.開始使用java 17前,先來了解一下我們業務邏輯的進入點


上篇說明,有設定進入點。
這是專案整個進入點
那現在我們有業務邏輯的進入點
就是之後我們寫的程式都會從這端點出發

有2兩個方式

  • 實作 ApplicationRunner
  • 事件聆聽 @EventListener(ApplicationReadyEvent.class)

先來說明一下概念
上篇大家看過這一張圖

依序執行了哪些服務,那ApplicationRunner 和 @EventListener(ApplicationReadyEvent.class)是一定要等到專案服務啟動完成後才會執行的區塊

  • ApplicationRunner

    @Slf4j
    @SpringBootApplication
    public class DemoApplication implements ApplicationRunner {
    
      public static void main(String[] args) {
          SpringApplication.run(DemoApplication.class, args);
      }
    
      @Override
      public void run(ApplicationArguments args){
          log.info("after service is running!!")
      }
    }
    

@Slf4j: 是lombok裏面的其中一個功能。主要是可以顯示根據需求顯示訊息並依據等級顯示,例如:info都會顯示, debug偵錯時顯示, error顯示為錯誤訊息等。

如果沒有注入Lombok那我想要有顯示記錄這個需求 我需要選擇特定的 顯示記錄 套件和對應的設定(xml,yml,etc),注入後當需要時再注入。

以上執行完如下

  • 事件聆聽 @EventListener(ApplicationReadyEvent.class)

    @Slf4j
    @SpringBootApplication
    public class DemoApplication  {
    
      public static void main(String[] args) {
          SpringApplication.run(DemoApplication.class, args);
      }
    
      @EventListener(ApplicationReadyEvent.class)
      public void applicationReady(ApplicationReadyEvent event){
          log.info("ApplicationReady event");
      }
    }
    

以上執行完如下

以上就是我們後續商業邏輯的進入點
那我這邊採用@EventListener(ApplicationReadyEvent.class)
是大家後續都會看到的

補充:

這不是一個給新手的一個教學過程,也寫的不是很完整
希望大家多多包涵囉~

主要是給自己的一個紀錄,也分享給有需要的夥伴

這是一個心血來潮,產生的文章
若有喜歡或交流的部分都歡迎在下方留言,多多關照。

#java 17 #spring boot







你可能感興趣的文章

TypeScript 定義型別物件

TypeScript 定義型別物件

不要動!把表單交出來(1) - formData

不要動!把表單交出來(1) - formData

BERT v.s. Gzip+kNN v.s. LGBM

BERT v.s. Gzip+kNN v.s. LGBM






留言討論